package com.yun.blog.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**
 * title        : CorsConfig
 * projectName  : dantouBlog-back
 * description  : 跨域配置
 * author       : simple
 * email        : yun_simple@163.com
 * date         : 2023/2/10下午3:20
 */

@Configuration
public class CorsConfig {


    @Bean
    public CorsFilter corsFilter() {
        // 初始化cors配置对象
        CorsConfiguration corsConfiguration = new CorsConfiguration();

        // 设置允许跨域的域名,如果允许携带cookie的话,路径就不能写*号, *表示所有的域名都可以跨域访问
        corsConfiguration.addAllowedOrigin("*");
        // corsConfiguration.addAllowedOrigin("https://www.dantoublog.top");

        // 设置发送Cookie信息
        // corsConfiguration.setAllowCredentials(true);

        // 允许所有的请求方法
        corsConfiguration.addAllowedMethod("*");

        // 允许携带任何头信息
        corsConfiguration.addAllowedHeader("*");

        // 给配置源对象设置过滤的参数
        // 参数一: 过滤的路径 == > 所有的路径都要求校验是否跨域
        // 参数二: 配置类
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", corsConfiguration);
        return new CorsFilter(source);
    }
}
